High speed division system



Sept. 8, 1970 CQCKE ETAL 3,527,930

7 HIGH SPEED DIVISION SYSTEM Filed July 19, 1967 19 Sheets$heet 1 FIG. 1

MEMORY ADDRESS INPUT REGISTER REMA INDER GENERATING CIRCUITRY (MODULO X) ADDER/DIVIDER (BY X) (INTEGER OUTPUT) INTEGER RESULT REMAINDER INVENTORS JOHN COCKE CHARLES V. FREIMAN MERLE E. HOMAN ATTORNEY Sept. 8-, 1970 J. COCKE ETAL HIGH SPEED DIVISION SYSTEM 19 Sheets-Sheet 2 Filed July 19, 1967 Sept. 8, 1970: J. CQCKE ET AL HIGH SPEED DIVISION SYSTEM 19 Sheets-Sheet 5 Filed July 19, 1967 -J. COCKE ET AL HIGH SPEED DIVISION SYSTEM Sept. 8,1970

19 Sheets-Sheet 4 Filed July 19, 1967 o c v o o v Q Q o o c QNQE Sept. 8, 1970 CQCKE ET AL 3,527,930

HIGH SPEED DIVISION SYSTEM Filed July 19, 1967 l9 Sheets-Sheet F|G.2A FIG.2B

FIG 2C FIG 20 Sept. 8,,1970 COCKE ETAL 3,527,930

HIGH SPEED DIVISION SYSTEM Filed July 19, 1967 A l9 Sheets-Sheet 10 men 012 RU H T o ET T R R i lfl J LT L J L T Lowo DE H4 H4 H2 H2 N BINARY GODED OCTAL DIGIT THIS LINE HAS WEIGHT 0F 1 (fl THESE LINES HAVE WEIGHT 0F 2 C: THESE LTNES HAVE WEIGHT 0F 4 7 A A A BINARY c0050 OCTAL men nus um; HAS WEIGHT 0F 2 (-rms LINE HAS WEIGHT 0F 1 2 ."4 z T' 4 "2"! V "4 2 Sept. 8, 1970 J. cocKE' ET AL 3,527,930 HIGHSPEED DIVISION SYSTEM Filed July 19, 1967 l9 Sheets-Sheet ll -.4 28293034 323334 3 21 22 23 24 25 2e 27 7A 2 14 i5 16 17 1a 1920 1 7 e 9 10 H 12 i3 0 o i 2 3 4 5 e ---l -om WORD MEMORY WORD\-+ 58 4o /54 1 GENERATE MULTIPLY 52j ADDER s2 LEAST. IREMAINDER BY 3 POSITIVE Y Y REMAINDER 122 24 MULTIPLY CAST OUT- ADDER REM/UNDER BY 0 FIVES GENERATE MULTIPLY- ADDERV LEAST BY -1 I POSITIVE REMAINDER.

FIG 70 Sept. 8, 1970 J, ETAL HIGH SPEED DIVISION SYSTEM 19 Sheets-Sheet 12 FIG. 86

Filed July 19, 1967 T T 0U EU 7 BWO 11 BW 22.233344455566677? E E r u G P 4 FEP wnmmmwwwwzaamx%m N m T m u W 11 W 0 2 2020 U B 8 A 6 0 0 8 m 8.1 T W PU OP 1 0 G 0 0 20 2O12 mm mwTN 1| W T V F F ED ED D 1122 mPO00 222 FN FN E l L L J. COCKE ET A Sept. 8, 1970 3,527,930

- HIGH SPEED DIVISION SYSTEM Filed July 19, 1967 19 Sheets-Sheet 13 FIG. 9A FIG. FIG. RADIX=10,D|VISOR=7 9 9A 98 com COL. 2 com COL. 4 o o 9 1o 12 14 1s r f GENERATE GENERATE GENERATE GENERATE LEAST LEAST LEAST LEAST POSITIVE POSITIVE POSITIVE POSITIVE REMAINDER REMAINDER REMAINDER REMAINDER 0 2 v 7 x3,+,-:- x3,+,+

0 o o 0 o 9 2s 84 V as V V as GENERATE GENERATE GENERATE GENERATE QUOTIENT QUOTIENT QUOTIENT QUOTIENT DIGIT men DIGIT DIGIT Sept. 8, 1970' O KE ET AL 3,527,930

HIGH SPEED DIVISiON SYSTEM Filed July 19, 1967 19 Shets-Sheet 14 RADIX =10, DIVISOR 7 COL,5 C0L.'6 com com 2 r 4 e 6 GENERATE GENERATE GENERATE GENERATE LEAST LEAST LEAST LEAST POSITIVE I POSITIVE POSITIVE POSITIVE REMAINDER REMAINDER REMAINDER REMAINDER /36 ,sa 4o 42 e 5 I F- 2 3 x3,+,+ 3 x2,+,

. 2 L s L 1 2 2 2 x3,+',+ 2 x2,+,+ 2 xs,+,+ 2 x4,+,:-

12 m so a2 2 2 1 4 o e s e 3 90 92 94 96 MM GENERATE GENERATE GENERATE GENERATE REMINDER QUOTIENT QUOTIENT QUOTIENT QUOTIENT DIGIT men men" men a it 1 Sept. 8, 1970 CO E ET AL 3,527,930

HIGH SPEED DIVISION SYSTEM :iled July 19, 1967 GENERATE GENERATE GENERATE GENERATE LEAST LEAST LEAST LEAST "POSITIVE POSITIVE POSITIVE POSITIVE REMAINDER REMAINDER REMAINDER REMAINDER 10s wa |NTERMED|ATE\ REMAINDERS\;

Y Y Y GENERATE GENERATE GENERATE GENERATE QUOTIENT QUOTIENT I QUOTIENT QUOTIENT DIGIT DIGIT DIGIT' DIGIT lj l l l Sept. 8,

Filed July 19, 1967 J. COCKE ET AL HIGH SPEED DIVISION SYSTEM 19 Sheets-Sheet 10 GENERAT'E GENERATE GENERATE GENERATE LEAST LEAST LEAST LEAST POSITIVE POSITIVE POSITIVE POSITIVE REMAINDER REMAINDER REMAINDER REMAINDER o o s s o L o L e 4 6 6 6 114 116 11a 12o s 1 e 7 a 6 5 s 3 y 7 FINAL GENERATE GENERATE GENERATE GENERATE REMINDER QUOTIENT QUOTIENT QUOTIENT QUOTIENT DlGlT DIGIT men men Sept. 8, 1970 J. CQCKE ET HIGH SPEED DIVISION SYSTEM Filed July 19, 1967 19 Sheets-Sheet 18 FIG. 2A FIG. FIG. RAD|X=8 DIVISOR=3 FIG 12A 12B 134 134 134 154 f f f GENERATE GENERATE GENERATE GENERATE LEAST LEAST LEAST LEAST POSITIVE POSITIVE POSITIVE POSITIVE REMAINDER REMAINDER REMAINDER REMAINDER x(-1),+,-:- x(+1),+,+ 12s 128 REMAINDERS MEDIATE f] f 52 I 32 132 GENERATE GENERATE .GENERATE GENERATE QUOTIENT QUOTIENT QUOTIENT QUOTIENT DIGIT men men DIGIT,

Sept. 8,

Filed July 19, 1967 J. COCKE 'A HIGH SPEED DIVISION SYSTEM 19 Sheets-Sheet 19 134 134 134 134 GENERATE GENERATE GENERATE GENERATE LEAST LEAST LEAST LEAST POSITIVE POSIYTIV'E' POSITIVE POSITIVE REMAINDER REMAINDER REMAINDER REMAINDER 2 2 I I 2 x('1),+,+ mm, I i

1 L 1 2 L o L 1 7 x(-1), 0 x1+1),+,+ x(-1),+,+ x(+1),+,+ 1 126 V3 1211 12s 12s 1 1 FHLAL GENERATE GENERATE GENERATE GENERATE REMAINDER QUOTIENT QUOTIENT QUOTIENT QUOTIENT DIGIT DIGIT DIGIT DIGIT United States Patent US. Cl. 235-160 11 Claims ABSTRACT OF THE DISCLOSURE A system for performing high speed division of an essentially fixed divisor type. The system includes means for developing remainders in a highly parallel fashion wherein once the interdigit remainders have been developed, the complete integer quotient may be generated for all digit positions substantially concurrently with the generation of the final remainder.

BACKGROUND OF INVENTION The present invention relates to a system for performing highly parallel high speed division. It has particular utility for memory address generation purposes. In most present day high speed memories especially of the three dimension core storage type virtually all address decoding is done on a power of 2 basis, i.e., 2, 4, 8, 16, 32, etc. This applies to both the XY addressing and also to situations where a plurality of individual data words are included within a single memory word. Thus, in a memory word of, for example, 64- bits there might be two data Words of 32 bits each or 4 data words of 16 bits each. In such systems it is conventional to give a single address of the desired data word from which the memory word address may be decoded together with the relative position of the desired data word within the memory word. Assuming, for example, that an address of 430 were given for a desired data word in a memory organized having four data words per memory word, this address 430 written in binary form could be decoded to find the proper memory address of 107 by merely shifting the binary address to the right two bit positions as will be understood by those skilled in the art. Further the particular data word designated by the address 430 would be the third data word stored at the memory word location designated by the address 107. Individual memory word addresses and data word addresses within the particular memory word may thus be easily decoded for memory organizations wherein the number of data words are a power of 2, as stated pre viously, by merely shifting the single data word address provided to the system. However, as may well be appreciated this power of 2 data word organization is not necessarily convenient. In the past, due to the complexity and time involved in performing division of an address by conventional means, i.e., performing the division one digit at a time beginning with the highest order digit generating a quotient and a remainder and rippling the remainder down to the next highest order digit and reperforming the division is quite time consuming and hence has not been seriously considered in previous memory accessing systems.

Modern day computer technology especially in the areas of memory design and fabrication are allowing ever larger numbers of bits to be concurrently accessed in a single memory fetch. For example, in certain IBM 360 models, as many as 288 bits may be accessed per memory cycle. It is also entirely possible in the near future that this number of bits per access may be significantly increased. It may thus readily be seen that limiting the number of data words within such a large access to a power of 2, i.e.,

3,527,930 Patented Sept. 8, 1970 2, 4, 8, 16, etc. is quite limiting on a system design wherein it is desired to achieve maximum utilization of memory storage capabilities.

SUMMARY OF INVENTION AND OBJECTS It has now been found that a specialized hardware system is capable of performing certain types of fixed divisor operations in a greatly improved manner by providing a high degree of look-ahead in the remainder circuitry. The disclosed system, while useful in any environment wherein fixed divisor division problems are present, has particular utility in address decoding circuitry for use with memories capable of accessing up to W words per access wherein W is not a power of 2 and thus cannot be decoded by mere truncation of low order bits or by shifting. Use of the present division scheme thus allows a much more flexible design of memory systems wherein the number of words per memory access may be altered by changing a relatively small quantity of hardware in the address decoding circuitry.

It is accordingly a primary object of the present invention to provide a very high speed division circuit.

It is a further object to provide such a circuit for use in the address decoding portion of a memory control systern.

It is a still further object of the invention to provide such a high speed division circuit having a high degree of parallelism in remainder generation from the highest to the lowest order bits of an input dividend.

It is yet another object to provide such a division circuit having separate functional units for generating the integer portions of the quotient and the remainder.

Other objects and advantages of the present invention will be apparent from the following description of a preferred embodiment of the invention as set forth in the specification and drawings.

BRIEF DESCRIPTION OF DRAWINGS FIG. 1 is a generalized functional block diagram of the present division circuit.

FIG. '2 is an organizational diagram of FIGS. 2.A2ID.

FIGS. 2A2D constitute a more detailed functional block diagram of the preferred embodiment of the system illustrated generally in FIG. 1.

FIG. 3 is a logical schematic diagram of the C box as shown in FIGS. 2'A-2D.

FIG. 4 is a detailed logical schematic diagram of a Modulo '3 Adder as shown on FIGS. 2A-2D.

FIG. 5 is a logical schematic diagram of a Modulo 3 Subtracter as shown on FIGS. 2A-2D.

FIG. 6A is a logical schematic diagram of the boxes marked Q Q on FIGS. 2C and 2D.

FIG. 6B is a logical schematic diagram of the Q box shown on FIG. 2C.

FIG. 7A is a diagrammatic representation of a section of a large computer memory wherein each memory word has a plurality of data words stored therein.

FIG. 7B is a functional block diagram of block 44 on FIGS. 9A and 93.

FIG. 7 is a functional block diagram of an alternative ertnbodiment of FIG. 7B with a radix of 10 and a divisor o 5.

FIG. 7D is a functional block diagram of the boxes 124 on FIGS. 12A and 12B.

FIGS. 8A-8D are truth tables for the indicated devices on FIGS. 2(A-D) and 12(A-B').

FIGS. 9A and 9B comprise a combination flow chart and numerical example using a dividend of radix 10 and a fixed divisor of 7.

FIGS. 10A and 10B comprise a combined flow chart and numerical example for a division circuit utilizing a dividend of radix 8 and fixed divisor of 7. 

